package io.github.wppli.domain.posts.service;

import io.github.wppli.domain.posts.model.valobj.PostsLikeCountVO;

/**
 * 实现延迟队列 + 定时任务更新数据库
 * @author li--jiaqiang 2025−03−11
 */
public interface IPostsLikeCountService {

    /**
     * 获取帖子点赞信息
     *
     * @return 帖子点赞信息
     * @throws InterruptedException 异常
     */
    PostsLikeCountVO takeLikeQueueValue() throws InterruptedException;

    /**
     * 延迟队列 + 任务 趋势更新
     */
    void updatePostsLikeCount(Long postId, int adjustCount);

    /** 写入延迟队列，延迟更新库存记录 */
    void postsLikeCountConsumeSendQueue(PostsLikeCountVO postsLikeCountVO);

    void updateOrInsertLike(Long postId,Long userId, int status);
}